package org.xinghai.sql.main.generator.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;

/**
 * 表关系存储实体（用于描述表之间的关联关系）
 * &#064;TableName  table_relationships
 */
@TableName(value ="table_relationships")
@Data
public class TableRelationships {
    /**
     * 关系ID（自增主键）
     */
    @TableId(type = IdType.AUTO)
    private Integer relationshipId;

    /**
     * 当前表（默认name）
     * */
    private String sourceTable;
    /**
     * 当前表的ID（不能为空）
     * */
    @TableField("source_table_id")
    private Long sourceTableID;
    /**
     * 被引用的表
     * */
    private String targetTable;
    /**
     * 被引用的表的ID
     * */
    @TableField("target_table_id")
    private Long targetTableID;

    /**
     * 关系类型（如："one-to-one", "one-to-many", "many-to-many"）
     */
    private String relationshipType;

    /**
     * 中间表ID（仅多对多关系时有效，关联database_tables.table_id）
     */
    private Integer junctionTableId;

    /**
     * 中间表名称（仅多对多关系时有效）
     */
    private String junctionTableName;

    /**
     * 关系描述（如：用户表与订单表的一对多关系）
     */
    private String description;

    /**
     * 记录创建时间（自动填充）
     */
    private Date createdAt;
}
